package handler

import (
	"day1.13/dao"
	"day1.13/request"
	"fmt"
	"github.com/gin-gonic/gin"
	"strconv"
)

func AddArticle(c *gin.Context) {
	var data request.ArticleAdd
	err := c.ShouldBind(&data)
	if err != nil {
		c.JSON(200, gin.H{
			"code": 0,
			"msg":  "错误",
			"data": nil,
		})
		return
	}
	add, err := dao.ArticleAdd(data.Name, data.Content)
	if err != nil {
		c.JSON(200, gin.H{
			"code": 0,
			"msg":  "失败",
			"data": nil,
		})
		return
	}
	c.JSON(200, gin.H{
		"code": 0,
		"msg":  "成功",
		"data": add,
	})
}

func ListArticle(c *gin.Context) {
	id := c.Query("id")
	atoi, _ := strconv.Atoi(id)
	fmt.Println(atoi)
	list, err := dao.ArticleList(atoi)
	if err != nil {
		c.JSON(200, gin.H{
			"code": 0,
			"msg":  "失败",
			"data": nil,
		})
		return
	}
	c.JSON(200, gin.H{
		"code": 0,
		"msg":  "成功",
		"data": list,
	})
}

func ReviewArticle(c *gin.Context) {
	var data request.ArticleReview
	fmt.Println(data)
	err := c.ShouldBind(&data)
	if err != nil {
		c.JSON(200, gin.H{
			"code": err.Error(),
			"msg":  "失败",
			"data": nil,
		})
		return
	}

	review, err := dao.ArticleReview(data.UserId, data.ArticleId, data.Context)
	if err != nil {
		c.JSON(200, gin.H{
			"code": 0,
			"msg":  "失败",
			"data": nil,
		})
		return
	}
	c.JSON(200, gin.H{
		"code": 0,
		"msg":  "成功",
		"data": review,
	})
}

func ReviewArticles(c *gin.Context) {
	var data request.ArticleReview1
	fmt.Println(data)
	err := c.ShouldBind(&data)
	if err != nil {
		c.JSON(200, gin.H{
			"code": err.Error(),
			"msg":  "失败",
			"data": nil,
		})
		return
	}

	review, err := dao.ArticleReviews(data.UserId, data.FatherId, data.ArticleId, data.Context)
	if err != nil {
		c.JSON(200, gin.H{
			"code": 0,
			"msg":  "失败",
			"data": nil,
		})
		return
	}
	c.JSON(200, gin.H{
		"code": 0,
		"msg":  "成功",
		"data": review,
	})
}

func ArticleHistory(c *gin.Context) {
	var data request.ArticleHistory
	err := c.ShouldBind(&data)
	if err != nil {
		c.JSON(200, gin.H{
			"code": err.Error(),
			"msg":  "失败",
			"data": nil,
		})
		return
	}
	history, err := dao.ArticleHistory(data.UserId, data.ArticleId)
	if err != nil {
		c.JSON(200, gin.H{
			"code": err.Error(),
			"msg":  "失败",
			"data": nil,
		})
		return
	}
	c.JSON(200, gin.H{
		"code": 0,
		"msg":  "成功",
		"data": history,
	})
}

func ArticleGood(c *gin.Context) {
	var data request.ArticleGood
	err := c.ShouldBind(&data)
	if err != nil {
		c.JSON(200, gin.H{
			"code": err.Error(),
			"msg":  "失败",
			"data": nil,
		})
		return
	}
	good, err := dao.ArticleGood(data.UserId, data.ArticleId)
	if err != nil {
		c.JSON(200, gin.H{
			"code": err.Error(),
			"msg":  "失败",
			"data": nil,
		})
		return
	}
	c.JSON(200, gin.H{
		"code": 0,
		"msg":  "成功",
		"data": good,
	})
}
